home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
A-COMAL Series
/
(k)aac.d64
/
pascal-misshd3
< prev
next >
Wrap
Text File
|
2007-02-28
|
3KB
|
153 lines
(*PROGRAM MISSHD3-11*)
label 11,30,32,33;
var VA,XT,ANL,VT,GAMT,ATAU,T3,DT,GC,RAD,PIE,XM,XI,ZM,ZT: real;
SIGT,SIGR,SIGRD,AKA,AKR,AKT,AKN,GAMMD,GAMM,AL,W,S: real;
RHO,CBAR,IY,CL,VS,VM,GAMTD,THDD,THD,THM,T,T2,T4: real;
TR,BTAU,DELMAX,DELS,DELTR,EP,E2P,D1EL,AM: real;
CDO,CDCL2,CMA,CMD,CMQ,CLAL,CLD,CD,QA,QS,ZL,D: real;
AMTHD,AMAL,AMDEL,VMD,ANM,GA,DELX,DELZ,RMT,A,B,DELT,ZD: real;
printer:text;
begin
rewrite(printer,4,15);
VA:=1562.0;
XT:=5000.0;
ANL:=4.0;
VT:=0.0;
GAMT:=0.0;
ATAU:=0.05;
T3:=0.0;
writeln(printer,'2D AIR-TO GROUND MISSILE SOLUTION -LINEAR- VER 5/10/84');
writeln(printer);
write(printer,'VA=',VA:5:0,' XT=',XT:6:0,' VT=',VT:4:0);
write(printer,' GAMT',GAMT:5:0,' ATAU',ATAU:5:2);
writeln(printer);
writeln(printer);
write(printer,' T',' VM',' DELX',' DELZ');
write(printer,' SIGR',' GAMM',' THM',' AL');
write(printer,' GA',' DELS',' ANM',' ZD');
writeln(printer);
DT:=0.01;
GC:=32.1739;
RAD:=57.2958;
PIE:=3.1415927;
XM:=0.0;
XI:=XT;
ZM:=0.0;
ZT:=500.0;
SIGT:=arctan((ZM-ZT)/(XT-XM));
SIGR:=0.0;
SIGRD:=0.0;
AKA:=-2.125;
AKR:=5.0;
AKT:=5.0;
AKN:=AKT*ANL;
GAMMD:=0.0;
GAMM:=0.0;
AL:=0.0;
W:=48.3;
S:=0.196;
RHO:=2.3769E-03;
CBAR:=0.5;
IY:=1.6;
CL:=0.0;
VS:=1116.9;
VM:=VA;
GAMT:=GAMT/RAD;
GAMTD:=0.0;
THDD:=0.0;
THD:=0.0;
THM:=0.0;
T:=0.0;
T2:=0.1;
T4:=T3;
TR:=385.0;
BTAU:=ATAU+DT;
DELMAX:=0.087;
DELS:=0.0;
DELTR:=0.0097;
EP:=0.0;
E2P:=0.0;
SIGRD:=0.0;
(*ITERATIVE CALCULATION*)
(*TRACKING LOOP*)
repeat
EP:=SIGT-SIGR;
IF T<= (T4-DT) THEN goto 11;
T4:=T4+T3;
E2P:=EP;
SIGRD:=AKR*AKT*E2P;
IF SIGRD>=0.35 THEN SIGRD:=0.35;
IF SIGRD<-0.35 THEN SIGRD:=-0.35;
11: SIGR:=SIGR+SIGRD*DT;
D1EL:=E2P*AKR*(AKN/AKA)-DELTR;
DELS:=(DELS*ATAU+D1EL*DT)/BTAU;
IF DELS> DELMAX THEN DELS:=DELMAX;
IF DELS< -DELMAX THEN DELS:=-DELMAX;
(*AERODYNAMICS AND CONTROL*)
AM:=VM/VS;
CDO:=0.669;
CDCL2:=0.045;
CMA:=-3.85;
CMD:=-3.52;
CMQ:=-400.0;
CLAL:=13.6;
CLD:=3.15;
CL:=AL*CLAL+DELS*CLD;
CD:=CDO+CDCL2*CL*CL;
QA:=0.5*RHO*VM*VM;
QS:=QA*S;
ZL:=QS*CL;
D:=QS*CD;
AMTHD:=QS*CBAR*CBAR*CMQ*THD/(2*VM);
AMAL:=QS*CBAR*CMA*AL;
AMDEL:=QS*CBAR*CMD*DELS;
THDD:=(AMAL+AMDEL+AMTHD)/IY;
THD:=THD+THDD*DT;
THM:=THM+THD*DT;
GAMMD:=((ZL/W)+(TR/W)*SIN(AL)-COS(GAMM))*GC/VM;
GAMM:=GAMM+GAMMD*DT;
VMD:=GC*((TR/W)*COS(AL)-D/W-SIN(GAMM));
ANM:=VM*GAMMD/GC;
VM:=VM+VMD*DT;
AL:=THM-GAMM;
GA:=SIGR-THM;
IF GA>=0.35 THEN GA:=0.35;
IF GA<-0.35 THEN GA:=-0.35;
(*MISSILE-TARGET KINEMATICS*)
XM:=XM+VM*COS(GAMM)*DT;
ZM:=ZM-VM*SIN(GAMM)*DT;
GAMM:=GAMM+GAMTD*DT;
XT:=XT+VT*COS(GAMT)*DT;
ZT:=ZT-VT*SIN(GAMT)*DT;
DELX:=XT-XM;
DELZ:=ZM-ZT;
SIGT:=arctan(DELZ/DELX);
IF DELX< 0.0 THEN SIGT:=(SIGT+PIE);
RMT:=SQRT(DELX*DELX+DELZ*DELZ);
T:=T+DT;
(*ITERATIVE LOGIC AND PRINTOUTS*)
IF RMT<= 30.0 then goto 30;
IF T<=(T2-DT) then goto 32;
30:(*continue*)
A:=VM*SIN(GAMM-SIGT)-VT*SIN(GAMT-SIGT);
B:=VM*COS(GAMM-SIGT)-VT*COS(GAMT-SIGT);
DELT:=RMT/B;
ZD:=A*DELT;
if ZD> 500.0 then ZD:= 500.0;
writeln(printer);
write(printer,T:5:2,VM:7:1,DELX:7:1);
write(printer,DELZ:7:1,SIGR:6:3);
write(printer,GAMM:6:3,THM:6:3);
write(printer,AL:6:3,GA:6:3);
write(printer,DELS:6:3,ANM:7:2,ZD:8:2);
T2:=T2+0.1;
32:(*continue*)
if T >=5.0 then goto 33
until RMT<= 30.0;
33:(*continue*)
writeln(printer);
writeln(printer);
writeln(printer,' ZD= ',ZD:7:3,' DELT= ',DELT:7:3);
writeln(' DONE');
end.